Натуральное
число m называется ровным
делителем числа n, если при делении
n на m частное и остаток совпадают. Для заданного натурального числа n найдите количество его ровных
делителей.
Вход. Одно натуральное число n (1 ≤ n ≤ 106).
Выход. Выведите одно число
– количество
ровных делителей числа n.
Пример
входа |
Пример
выхода |
20 |
2 |
циклы
Поскольку
значение n не слишком велико, можно перебрать
в цикле все возможные значения m от 2
до n и проверить выполнение равенства
. Подсчитываем количество таких m.
Пример
Например, для n = 20 существуют два ровных делителя: 9
и 19, так как
·
20 / 9 = 20 mod 9 = 2;
·
20 / 19 = 20 mod 19 = 1
Читаем входное
значение n.
scanf("%d",&n);
В переменной res подсчитываем количество таких чисел m (2 ≤ m ≤ n), для которых
частное от деления n на m равно остатку от деления n на m.
res = 0;
for(m = 2; m <= n; m++)
if ((n / m)
== (n % m)) res++;
Выводим ответ.
printf("%d\n",res);
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
int res = 0;
for(int m = 2; m <= n; m++)
if ((n / m) == (n % m)) res++;
System.out.println(res);
con.close();
}
}
Читаем входное
значение n.
n = int(input())
В переменной res подсчитываем количество таких чисел m (2 ≤ m ≤ n), для которых
частное от деления n на m равно остатку от деления n на m.
res = 0
for m in range(2,n) :
if (n // m == n % m) :
res += 1
Выводим ответ.
print(res)